import os

from PyQt5.QtCore import QEvent

# -------------------------- 依赖库配置 --------------------------
# 格式：(导入名, pip安装名)
REQUIRED_LIBS = [
    ('PyQt5.QtWidgets', 'pyqt5'),
    ('PyQt5.QtCore', 'pyqt5'),
    ('cv2', 'opencv-python'),
    ('pyautogui', 'pyautogui'),
    ('PIL', 'pillow'),
    ('schedule', 'schedule'),
    ('sqlite3', 'sqlite3'),  # 标准库，仅作记录
    ('matplotlib', 'matplotlib')
]

# -------------------------- 事件类型配置 --------------------------
# 自定义事件（跨线程通信：定时任务触发）
TASK_EVENT_TYPE = QEvent.Type(QEvent.registerEventType(1001))

# -------------------------- 路径配置 --------------------------
# 获取当前文件所在目录的绝对路径，然后向上一级找到项目根目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 使用绝对路径定义所有文件路径
DB_NAME = os.path.join(BASE_DIR, 'data', 'rpa_manager.db')        # 数据库文件
LOG_FILE = os.path.join(BASE_DIR, 'logs', 'rpa_manager.log')      # 日志文件
RECORDING_DIR = os.path.join(BASE_DIR, 'recordings')              # 录屏文件目录

# -------------------------- 功能配置 --------------------------
# 录屏配置
DEFAULT_RECORD_FPS = 10                # 默认帧率（10FPS兼顾性能和清晰度）
MIN_RECORD_SIZE = 1024                 # 最小有效录屏文件（1KB，过滤空文件）
RECORD_MAX_DURATION = 3600 * 2         # 最大录屏时长（2小时，防止文件过大）

# 任务执行配置
TASK_TIMEOUT = 3600                    # 任务超时时间（1小时）
DEFAULT_LOG_LEVEL = 'INFO'             # 默认日志级别

# 日志保留配置
DEFAULT_LOG_KEEP_DAYS = 30             # 默认日志保留天数

# -------------------------- 播放器配置 --------------------------
# 播放器类型: 'system' - 系统默认播放器, 'internal' - 应用内置播放器
DEFAULT_PLAYER_TYPE = 'system'  # 默认使用系统播放器
PLAYER_TYPES = {
    'system': '系统默认播放器',
    'internal': '应用内置播放器'
}